Non-volatile memories are commonly utilised to permanently store data in electronic devices. Non-volatile memories which are one-time programmable are utilised where there is a requirement to program data into the memory only once and thereafter for that data to be unchangeable. For example, one-time programmable memories may be used to store data that should then remain unchanged for the life of the device, such as serial numbers, IP addresses, or features of the device. One-time programmable memory may also be utilised to control access to certain features or functions of a device. For example, a device may be configured such that a test mode can only be enabled when a memory is in an unprogrammed state. When testing has been completed by the manufacturer that memory is programmed, thereby preventing the future enablement of the test mode.
One-time programmable memories may be implemented using a number of different technologies. Common examples are ‘fuses’ and ‘anti-fuses’ in which the conductivity of an electronic component is permanently altered, or FLASH type memories without a reprogramming circuit.
There are scenarios where an ability to reprogram a memory a limited number of times may be desirable. For example, where a memory is used to control access to a test mode, it may be advantageous to be able to re-activate that test mode should the device be returned to the manufacturer. Such an action is not possible with existing one-time programmable memories.